The General Packet Radio Service (GPRS) network architecture can be viewed as an evolution of the Global System for Mobile Communications (GSM) network carrying both circuit switched and packet data. With GPRS providing a move from circuit switched technology to packet switched technology, it was necessary to upgrade the network architecture to accommodate this. The main new network architecture entities that are added are the Gateway GPRS Support Node (GGSN) and the Serving GPRS Support Node (SGSN). In brief, the SGSN forms a gateway to the services within the network, while the GGSN acts as an interface and a router to external networks. The GGSN contains routing information for GPRS mobile devices, which is used to tunnel packets through the IP based internal backbone to the correct SGSN.
When a mobile device attaches to a SGSN and wants to begin transferring data, it must first activate a Packet Data Protocol (PDP) address. Activating a PDP address establishes an association between the mobile device's current SGSN and the GGSN that anchors the PDP address. The data record kept by the SGSN and the GGSN regarding this association is called the PDP context. A given PDP context is in the active state when this PDP address is activated for data transfer. PDP context procedures have been defined in order to create, modify, and delete PDP contexts within the SGSN and GGSN entities.
Direct tunnel is an enhanced functionality in 3G networks that enables operators to simplify their mobile packet data networks. Direct tunnel allows data traffic to be routed directly from the Radio Access Network (RAN) to the core network's Internet Gateway node (the GGSN), bypassing the control node (the SGSN) through which data traffic was routed in previous network architectures. Even though the payload bypasses the SGSN, all signaling traffic will still be communicated between the SGSN and GGSN. If any abnormal situation happens during the direct tunnel, the GGSN and SGSN shall communicate signaling to switch back to the normal tunnel for payload between the SGSN and the GGSN. As such, the PDP context needs to be maintained between the SGSN and GGSN.
Reference is now made to FIG. 1 (Prior Art). The 3G direct tunnel normal release procedure involves signaling between the Radio Network Controller (RNC) 100, the SGSN 102 and the GGSN 104. When the RNC 100 initiates a direct tunnel normal release, it sends a Radio Access Bearer (RAB) Release Request message 110 and an Interface (Iu) Release Request message 112 to the SGSN 102 to indicate that tunnel resources should be released. In response, the SGSN 102 sends an Update PDP Context Request message 120 to the GGSN 104. The GGSN 104 replies with an Update PDP Context Response 122.
Reference is now made to FIG. 2 (Prior Art). The 3G direct tunnel error indication procedure involves signaling between the Radio Network Controller (RNC) 100, the Serving GPRS Support Node (SGSN) 102 and the GPRS Gateway Support Node (GGSN) 104. If tunnel resources have already been released, the RAB does not exist, and the RNC 100 receives a payload 130 from the GGSN 104, it will respond with an error indication message 132. In response to the error message 132, the GGSN 104 sends an Update PDP Context Request message 140 to the SGSN 102. The SGSN 102 replies with an Update Context Response 142.
Referring now to FIG. 3 (Prior Art), under some circumstances the functionality of the 3G direct tunnel normal release procedure (shown in FIG. 1) and the 3G direct tunnel error indication procedure (shown in FIG. 2) overlap. If the RNC 100 initiates the release of tunnel resources at the same, or similar, time as the GGSN 104 forwards a payload 130 to the RNC 100, it is possible that both the resulting Update PDP Context Request messages 120 and 140 are sent within the same period, and signaling deadlock can occur between the SGSN 102 and the GGSN 104.
For instance, if the PDP context state is in the update state in the GGSN 104, the GGSN 104 will not consider any PDP updates, such as PDP Context Request 120, because the GGSN 104 is waiting for an Update PDP Context Response, such as response 142 in FIG. 2. In this case, the Update PDP Context Request 120 from the SGSN 102 is rejected by the GGSN 104. Likewise, the PDP context state is set to the update state in the SGSN 102, and the Update PDP Context Request 140 from the GGSN 104 will be rejected by the SGSN 102 as it waits for a PDP update response. In this scenario, the SGSN 102 and GGSN 104 are now in signaling deadlock, and the PDP context for the user may be terminated. The user equipment may have to perform a new GPRS attach procedure and a new PDP context activation procedure. Undesirable delays and added signaling will impact both the user's experience and the operator's network resources.
At present, there is no mechanism supported by an open standard group in the GPRS core network space, such as the 3GPP Forum, that provides for an error handling procedure to prevent deadlock from occurring. When the deadlock scenario occurs, the SGSN and GGSN are not able to resolve the overlap in direct tunnel release and error handling procedures without impacting the user's experience.
Accordingly, it should be readily appreciated that in order to overcome the deficiencies and shortcomings of the existing solutions, it would be advantageous to have a solution for preventing deadlock without impacting the user.